This ensures that this._clickedSummaryItem is always unset correctly.
Because we disconnect the signals that have _adjustSummaryBoxPointerPosition()
as a callback when unsetting this._clickedSummaryItem, we no longer call
setPosition() on this._summaryBoxPointer after it is hidden. Calling
setPosition() shows the box pointer again, which previously resulted in
an empty box pointer staying behind when a notification associated with
a tray icon was clicked.
https://bugzilla.gnome.org/show_bug.cgi?id=659862
}
this._summaryBoxPointerState = State.HIDING;
- // Unset this._clickedSummaryItem if we are no longer showing the summary
- if (this._summaryState != State.SHOWN)
+ // Unset this._clickedSummaryItem if we are no longer showing the summary or if
+ // this._clickedSummaryItem is still the item associated with the currently showing box pointer
+ if (this._summaryState != State.SHOWN || this._summaryBoxPointerItem == this._clickedSummaryItem)
this._unsetClickedSummaryItem();
this._focusGrabber.ungrabFocus();